#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//递归和非递归分别实现求第n个斐波那契数
//例如：
//输入：5  输出：5
//输入：10， 输出：55
//输入：2， 输出：1

//递归：

//int Fun(int n)
//{
//	if (n <= 2)
//	{
//		return 1;//n小于等于2时，值都为1
//	}
//	else
//	{
//		return Fun(n - 1) + Fun(n - 2);//当n大于2，第n个值等于前两个值之和
//	}
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int num = Fun(n);
//	printf("%d", num);
//	return 0;
//}

//迭代：

//int Fun(int n)
//{
//	int a = 1;//a代表第一位数
//	int b = 1;//b代表第二位数
//	int sum = 1;//sum接受前两位数的和
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else//当求第3个或以上个数是，计算从第三位数开始的和
//	{
//		for (int i = 3; i <= n; i++)
//		{
//			a = b;//每轮循环前，a向后变一个数，b向后继承上一次算出来的sum
//			b = sum;
//			sum = a + b;
//		}
//		return sum;
//	}
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int num = Fun(n);
//	printf("%d", num);
//	return 0;
//}

//编写一个函数实现n的k次方，使用递归实现


//int power(int n, int k)
//{
//	if (k == 0)//任何数的0次方都是1
//	{
//		return 1;
//	}
//	else
//	{
//		return n * power(n, k - 1);//本质是n乘以n的k-1次方仍然等于n的k次方
//	}
//}
//
//int main()
//{
//	int n = 0;
//	int k = 0;
//	scanf("%d %d", &n, &k);
//	int a = power(n, k);
//	printf("%d", a);
//}

//写一个递归函数DigitSum(n)，输入一个非负整数，返回组成它的数字之和
//例如，调用DigitSum(1729)，则应该返回1 + 7 + 2 + 9，它的和是19
//输入：1729，输出：19
//int DigitSum(int i)
//{
//	if (i < 10)
//	{
//		return i;
//	}
//	else
//	{
//		int num = i % 10;
//		return num + DigitSum(i / 10);
//	}
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = DigitSum(n);
//	printf("%d", i);
//	return 0;
//}

//递归和非递归分别实现求n的阶乘（不考虑溢出的问题）
//递归


//int digit(int n)
//{
//	if (n == 0)//0的阶乘是1，当n减少到0时，就可以乘回去了
//	{
//		return 1;//返回1
//	}
//	else
//	{
//		return n * digit(n - 1);
//	}
//}

//迭代:


//int iteration(int n)
//{
//	if (n > 0)
//	{
//		int num = 1;
//		for (; n > 0;n--)
//		{
//			num *= n;
//		}
//		return num;
//	}
//	else
//	{
//		return 1;
//	}
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = iteration(n);
//	printf("%d", ret);
//	return 0;
//}

//递归方式实现打印一个整数的每一位

void print(int n)
{
	if (n > 9)//if条件语句满足的话，里面的语句肯定比外面的打印n%10要先执行
	{
		print(n / 10);
	}
	printf("%d ", n % 10);
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	print(n);
	return 0;
}